---
id: 5900f4e51000cf542c50fff6
title: 'Завдання 374: максимальний добуток розкладання'
challengeType: 1
forumTopicId: 302036
dashedName: problem-374-maximum-integer-partition-product
---

# --description--

Розкладання цілого числа $n$ — це спосіб запису числа $n$ у вигляді суми натуральних чисел.

Розкладання, які відрізняються лише порядком доданків, вважаються однаковими. Розкладання числа $n$ на різні частини — це розкладання числа $n$, де кожна частина зустрічається не більше одного разу.

Розкладання числа 5 на різні частини:

5, 4 + 1 та 3 + 2.

Нехай $f(n)$ буде максимальним добутком частин будь-якого такого розкладання $n$ на різні частини, а $m(n)$ буде кількістю елементів розкладання $n$ з таким добутком.

Отже, $f(5) = 6$ та $m(5) = 2$.

Розкладанням з найбільшим добутком за умови $n = 10$ є $10 = 2 + 3 + 5$, для якого $f(10) = 30$ та $m(10) = 3$. Їх добуток становить $f(10) \times m(10) = 30 \times 3 = 90$

Можна довести, що $\sum f(n) \times m(n)$ за умови $1 ≤ n ≤ 100 = 1\\,683\\,550\\,844\\,462$.

Знайдіть $\sum f(n) \times m(n)$ за умови $1 ≤ n ≤ {10}^{14}$. Надайте відповідь за модулем $982\\,451\\,653$ (це 50-мільйонне просте число).

# --hints--

`maximumIntegerPartitionProduct()` має повернути `334420941`.

```js
assert.strictEqual(maximumIntegerPartitionProduct(), 334420941);
```

# --seed--

## --seed-contents--

```js
function maximumIntegerPartitionProduct() {

  return true;
}

maximumIntegerPartitionProduct();
```

# --solutions--

```js
// solution required
```
